import java.util.Arrays;
import java.util.List;

public class Solution {
        public int triangleNumber(int[] nums) {
            //1.排序
            Arrays.sort(nums);
            //2.挑选
            int ret = 0;
            int L = nums.length;
            //3.利用快慢指针挑选两个值与数组后最大的那个值(会变)比较
            for(int i = L-1;i >= 2;i--){
                int left = 0;
                int right = i-1;
                while(left < right){
                    if(nums[left] + nums[right] > nums[i]){
                        ret = right - left + ret;//如果当前三个数满足三角形 则双指针中间的那些值都满足
                        right--;
                    }else{
                        left++;//如果当前三个数不满足三角形最小值进行调整
                    }
                }
            }
            return ret;
        }
    }

